1. Technical Field
The present invention relates to data processing systems and, in particular, to methods and systems for configuring data processing systems. More specifically, the present invention relates to systems and methods with bootcode support for operator interaction.
2. Description of the Related Art
Conventional personal computer systems (PCs) include a central processing unit (CPU), one or more memory modules, and a motherboard into which the CPU and memory modules are inserted. A chipset mounted to the motherboard by the manufacturer provides core logic that operatively links the CPU, the memory modules, and other components of the system. A read only memory (ROM) chip containing the system""s startup program (firmware) is also mounted to the motherboard.
A conventional PC typically also includes input and output (I/O) devices (e.g., a keyboard and a video display), as well as one or more floppy and/or hard disk drives, which are also connected to the motherboard, oftentimes via intermediate adapters. Most general-purpose PCs in operation today also include a dedicated serial port, a dedicated keyboard port, and one or more expansion slots configured to receive expansion cards for augmenting the PC""s functionality. For example, a network expansion card can be inserted into an expansion slot of a general-purpose PC to provide a port for connecting that PC to a local area network (LAN).
When a PC is started, the CPU automatically executes the startup program, which loads and activates a basic input and output system (BIOS) that supports communication between the CPU and the I/O devices. The startup program then loads and activates an operating system (OS) which provides an interface to the hardware of the PC for software applications such as network client software, word processors, web browsers, etc.
Some OSs (such as DOS) provide a relatively simple and limited set of commands for utilizing the PC""s hardware. Perhaps the most widely utilized variety of DOS is the OS that has been distributed (in numerous versions) since approximately 1980 by Microsoft Corporation under the trademark MS-DOS. An important characteristics of DOS is that it can operate within systems having relatively limited data storage facilities. Other OSs provide more complex functionality, such as support for networking, security, and/or multi-tasking. However, relative to DOS, these more advanced OSs also require additional hardware resources, particularly the data storage facilities utilized to hold the OS while the system is powered down and the data storage facilities utilized by the OS when the system is active. Examples of such advanced OSs include the OS developed by American Telephone and Telegraph Company and distributed under the trademark UNIX, the OS distributed by International Business Machines Corporation (IBM) under the trademark AIX, other xe2x80x9cUNIX-likexe2x80x9d OSs, the OS distributed by IBM under the trademark OS/2, and the OSs distributed by Microsoft Corporation under the trademarks WINDOWS 95, WINDOWS 98, and WINDOWS NT.
While a general purpose PC may be customized to fill particular computing needs, advances in technology and changes in the computer market have resulted in the development of special-purpose PCs that differ in configuration from general-purpose PCs. For example, in response to demand for PCs to serve solely as network clients, manufacturers have recently begun producing PCs with motherboards having built-in, or xe2x80x9conboard,xe2x80x9d networking circuitry. Further, in order to reduce the complexity and cost of such PCs, and to make room on the motherboard for the necessary onboard components, manufacturers are omitting from those PCs legacy features such as expansion slots and disk drives. These PCs, which are called xe2x80x9cthin clients,xe2x80x9d xe2x80x9cdiskless workstations,xe2x80x9d xe2x80x9cnetwork appliances,xe2x80x9d or xe2x80x9cInternet appliances,xe2x80x9d may even lack dedicated keyboard and serial ports, instead utilizing one or more Universal Serial Bus (USB) ports. As explained in the Universal Serial Bus Specification Revision 1.1, which may be found on the Internet at http://www.usb.org and which is hereby incorporated by reference, USB ports employ two data lines that carry data as complementary voltage signals.
Furthermore, unlike a typical general purpose PC, which loads an operating system from a local hard disk (or other local data storage), when some thin clients are started or restarted (i.e., booted) they automatically load the OS from a remote server. Furthermore, thin clients often do not load DOS but instead load some other OS (e.g., a UNIX-like OS).
Although it can be appreciated that thin clients provide a cost effective solution to particular computing needs, the lack of legacy features in such systems presents difficulties where execution of applications that perform system diagnostics is concerned. Those difficulties exist because many existing programs for testing PCs are designed to run under DOS and to utilize legacy I/O facilities, but many thin clients do not boot to DOS and do not have legacy I/O ports. Significant time and expense would be required to rewrite existing DOS-based test programs for other OSs. In addition, new system hardware is typically available before any new OS for that hardware, or any new application designed to run under the new OS, has been written. Furthermore, certain low-level diagnostics can only be performed before the operating system is loaded. Therefore, a need exists for technology that allows conventional diagnostic routines to be utilized on systems that lack legacy I/O facilities. In addition, that technology should enable the diagnostic routines to operate effectively while no OS is loaded. Additionally, there exists a need for a way to test thin clients without incurring the delays and expense associated with rewriting existing testing applications for new OSs and without increasing the costs associated with manufacturing the thin clients. The present invention addresses those needs.
The present invention provides a data processing system with bootcode support for communicating with a noncompliant external device. The data processing system has a motherboard, a non-volatile memory connected to the motherboard, a volatile memory, processing resources, a communications port that utilizes a first communications protocol, and one or more buses interconnecting those components. Startup instructions obtained from the non-volatile memory load a device driver for the external device from the non-volatile memory into the volatile memory. Unlike the communications port, the external device utilizes a second communications protocol. Diagnostic instructions then utilize the device driver to communicate with the external device via the communications port.
In an illustrative embodiment, the communications port is a USB port, the external device is a serial terminal, the device driver is a serial terminal driver, and the diagnostic instructions utilize the serial terminal driver to communicate with the serial terminal via the USB port while no operating system is present in the volatile memory.
All objects, features, and advantages of the present invention will become apparent in the following detailed written description.